SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO


CREATE PROCEDURE [dbo].[LIQTotalSubsidio]
@Agente int,
@Servicio int,
@Plaza int,
@Resultado DECIMAL(18,4) output,
@idLiquidacion int,
@DiasALiquidar int,
@DiasDelPeriodo INT,
@Desde DATETIME,
@Hasta DATETIME 
 AS 

SET NOCOUNT ON

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- REGISTRO DE ACTUALIZACIONES
-- 18/11/2005 - Se agregaron parametros @Desde y @Hasta para manejo de Fechas en Titulares y Suplentes
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

DECLARE @Jubilacion DECIMAL(18,4)
DECLARE @Liquido DECIMAL(18,4)
DECLARE @PorcSubsidio DECIMAL(18,4)
DECLARE @Afiliacion int, @horas int, @regimensalarial  int, @organizacion int, @situacionrevista int
DECLARE @DescAporte DECIMAL(18,4)
DECLARE @NroError int
DECLARE @TotalSubsidio DECIMAL(18,4)
DECLARE @SubOrganizacion Int
DECLARE @Total19 DECIMAL(18,4), @Total6 DECIMAL(18,4)
DECLARE @SueldoBasico DECIMAL(18,4)
DECLARE @CabeceraDeLiquidacion INT 

Select @Liquido = MontoHaberes  from tb_RegistroDeLiquidaciones where Servicio = @Servicio and liquidacion = @idLiquidacion and concepto = 20
Select @PorcSubsidio = isnull(PorcentajeSubsidio, 0) from tb_Plazas where idPlaza = @Plaza

Select @Total19 = MontoDescuento From tb_RegistroDeLiquidaciones Where Concepto = 11 And Liquidacion = @idLiquidacion And Servicio = @Servicio
Select @Total6 = MontoDescuento From tb_RegistroDeLiquidaciones Where Concepto = 15 And Liquidacion = @idLiquidacion And Servicio = @Servicio

Select @TotalSubsidio = (@Liquido * @PorcSubsidio)/100
Select @TotalSubsidio = @TotalSubsidio + @Total19 + @Total6

Select @Afiliacion = idAfiliacion from tb_Afiliaciones where idAgente = @Agente
Select @horas= horas, @regimensalarial = regimensalarial, @SubOrganizacion = SubOrganizacion from tb_Plazas where idPlaza = @Plaza
Select @Organizacion = ubicacionOrig, @SituacionRevista = SituacionRevista from tb_ServiciosAgentes where idservicioAgente =  @Servicio
Select @SueldoBasico = MontoHaberes From tb_RegistroDeLiquidaciones Where Concepto = 4 And Servicio = @Servicio And Liquidacion = @idLiquidacion

If (Select OrganizacionLiquidadora From tb_SubOrganizaciones Where idSubOrganizacion = @SubOrganizacion) Is Not Null
	Select @Organizacion = OrganizacionLiquidadora From tb_SubOrganizaciones Where idSubOrganizacion = @SubOrganizacion

--If @SueldoBasico > 0
	insert into tb_RegistroDeLiquidaciones (AfectadosPorAjuste, Afiliacion, Agente, Ajuste, Cantidad, Cargosalarial, Concepto, Descripcion, DescuentoExterno, Desde, Dias, Embargo, Hasta, Horas, LegajoSalarial, Liquidacion, MontoDescuento, MontoHaberes, Organizacion, Reclamado, Servicio, SituacionRevista, DiasLiquidados, SubOrganizacion)
	values (null, @Afiliacion, @Agente, null, 1, null, 24, null, null, null, null, null, null, @horas, 0, @idLiquidacion, 0, @TotalSubsidio, @Organizacion, null, @Servicio, @SituacionRevista, @diasALiquidar, @SubOrganizacion)

SELECT  @NroError = @@error

IF @NroError <> 0
  BEGIN
	SELECT @CabeceraDeLiquidacion = IdCabeceraLiquidacion FROM tb_Liquidaciones WHERE IdLiquidacion = @IdLiquidacion

	INSERT INTO Tb_ErroresLiquidacion (Agente, Concepto, Diagnostico, Fecha, Liquidacion, Organizacion, Servicio, CabeceraDeLiquidacion, NumeroDeError) 
		VALUES (@Agente, 24, convert(varchar,@NroError), getdate(), @idLiquidacion, @Organizacion, @Servicio, @CabeceraDeLiquidacion, @NroError)
  END

GO
